

/*
 * 
 * 通用ajax后台调用函数 param url:ajax 调用的后台响应url param param:ajax 调用后台传递参数(post method)
 * param callbackTarget 调用成功后回调函数目标对象 param callbackFunc 调用成功后执行的回调函数，回调函数接受两个参数
 * 回调函数参数: param callbackTarget: 回调目标对象 param r : json格式数据对象(ajax调用返回的远程数据))
 */
define(["jquery","searchElUtil"], function($,searchElUtil) {

	'use strict';	
	
	 var public_method={
			/**
			 * @param _options.source	date类型源数据
			 * @param _options.format	返回数据类型
			 * 			1.yyyy 			返回年数据值
			 * 			2.yyyy-MM 		年月数据
			 * 			3.yyyy-MM-dd	年月日数据	
			 * 			4.yyyy-MM-dd hh:mi:ss	年月日小时分
			 * @param _options.split
			 */
			getDateValue:function(_options){
				
				var _format
				var _defaultConfig ={
					split:'-',
					format:null
				}
				var _sourceDate,retVal
				
				
				if(_options.source){
					_sourceDate = _options.source
				}else{
					_sourceDate = new Date();
				}
				if(_options.format){
					_format = _options.format
					_format=_format.replace(/yyyy/g,_sourceDate.getFullYear())							
				
					_format=_format.replace(/yy/g,_sourceDate.getYear())
					
					_format=_format.replace(/MM/g,_sourceDate.getMonth()+1)							
				
					_format=_format.replace(/dd/g,_sourceDate.getDate())	
					
					_format=_format.replace(/HH/g,_sourceDate.getHours())
					_format=_format.replace(/hh/g,_sourceDate.getHours())
					
					
					_format=_format.replace(/mi/g,_sourceDate.getMinutes())							
				
					_format=_format.replace(/ss/g,_sourceDate.getSeconds())	
					
				}
				
				return _format
			},
			/**
			 * 获取起始与结束时间
			 * @param _options.startEl 起始时间组件
			 * @param _options.endEl   结束时间组件
			 * @param _options.fieldName 字段名称
			 */
			getStartEndDate:function(_options){
				var _timeElement={},retVal={}
				
				if(_options.fieldName){
					var _startField = _options.fieldName + '_start'
					var _endField = _options.fieldName + '_end'
					if(_options.startEl && _options.startEl.length>0){
						var _tmpValue = $(_options.startEl).datebox('getValue')
						if(_tmpValue){
							_timeElement[_startField]=_tmpValue
							
						}
					}
					
					if(_options.endEl && _options.endEl.length>0){
						_tmpValue = $(_options.endEl).datebox('getValue')
						if(_tmpValue){
							_timeElement[_endField]=_tmpValue								
						}
					}
					if(_timeElement && !$.isEmptyObject(_timeElement)){					
						return _timeElement
					}
				}
				
				return 
			},
			
			/**
			 * @param _options.target	目标元素dom对象
			 * @param _options.rootId	目标文档根节点id
			 * @param _options.selector	目标元素选择器
			 * @param _options.fieldName 目标元素名称
			 * 
			 */
			getDateboxValue:function(_options){
				
				var retVal 
				if(_options.fieldName){
					var _target = searchElUtil.getSearchElement(_options)
					if(_target && _target.length>0){
						
						var _tmpValue = $(_target).datebox('getValue')
						if(_tmpValue){
							retVal = {}
							retVal[_options.fieldName] = _tmpValue
							return retVal;
						}
					}
				}
			},
			
			/**
			 * @param _options.target	目标元素dom对象
			 * @param _options.rootId	目标文档根节点id
			 * @param _options.selector	目标元素选择器
			 * @param _options.type		
			 * 			start:1号
			 * 			current:当前日期
			 * 			end:月度最后一天	(附加参数data)
			 * @param _options.data		月度第一天和最后一天计算依据
			 */
			setMonthDate:function(_options){
				
				var _defaultConfig ={
					type:'current'
				}
				
				$.extend(_defaultConfig,_options)
				
				var _date = searchElUtil.getSearchElement(_options)
						
				
				if(_date && _date.length>0){
					
					
					var curDate = new Date();
					
					if(_defaultConfig.type==='start'){
						curDate.setDate(1);
					}
					
					var _tmp = public_method.getDateValue({source:curDate,format:'yyyy-MM-dd'})
					$(_date).datebox('setValue',_tmp);	
					$(_date).val(_tmp);
					
				}
			},
			setMonthEndDate:function(){
				
			}
	 }
		
		
		
		return public_method
});
